﻿using System.Runtime.CompilerServices;

namespace ConsoleApp2
{
    //调用方信息特性
    /*
       CallerMemberName：返回调用方法的方法名。
       CallerFilePath：返回包含调用方法的源文件的路径。
       CallerLineNumber：返回调用方法的源文件中的行号。
     */

    class Logger
    {
        public static void Log(string message,
            [CallerMemberName] string memberName = "",
            [CallerFilePath] string filePath = "",
            [CallerLineNumber] int lineNumber = 0)
        {
            Console.WriteLine($"Message: {message}");
            Console.WriteLine($"Called from method: {memberName}");
            Console.WriteLine($"File path: {filePath}");
            Console.WriteLine($"Line number: {lineNumber}");
            Console.WriteLine();
        }
    }

    internal class Program
    {
        static void Main(string[] args)
        {
            Logger.Log("The program started successfully");
        }
    }
}